Technical Q&A QA1059
Setting the look-and-feel for Swing applications


Q: Mac OS X è„Ç≈ÅAé©ï™Çà Swing ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ… Aqua ÇégÇ¢ÇΩÇ≠ǻǢÇÃÇ≈Ç∑Ç™ÅAïœçXÇ∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹Ç∑Ç©ÅH

AÅFSun ÇÃédólÇ≈ÇÕÅASwing ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕÅAǪÇÃãLèqï˚ñ@Ç…âûÇ∂ǃÅAìÆìIÇ…ïœçXÇ≈Ç´ÇÈÅAï°êîÇÃÉvÉâÉOÉCÉìâ¬î\Ç»ÉãÉbÉNÉAÉìÉhÉtÉBÅ[ÉãÅiPLAFÅjÇégǧDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBMac OS X Çà Swing ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕÅAÉfÉtÉHÉãÉgÇ≈ÇÕÅAAqua ÇÃÉãÉbÉNÉAÉìÉhÉtÉBÅ[ÉãÇçÃópǵNjÇ∑ÅBDZÇÍÇÕÅASwing ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ãNìÆÇ∑ÇÈÇΔÇ´Ç…ÅAJava âºëzÉ}ÉVÉìÇ™égǧ swing.properties ÉtÉ@ÉCÉãÇí Ç∂ǃçsÇÌÇÍÇ‹Ç∑ÅBDZÇÍÇÕÅAÇ¢Ç≠ǬǩÇÃï˚ñ@Ç≈ÉIÅ[ÉoÅ[ÉâÉCÉhÇ≈Ç´Ç‹Ç∑ÅB

  • ÅuÉ^Å[É~ÉiÉãÅvÇ©ÇÁãNìÆÇ≥ÇÍÇÈÉvÉçÉOÉâÉÄÇÃèÍçáÇÕÅA-Dswing.defaultlaf=<äÆëSÇ»ÉNÉâÉXñº> à¯êîÇ java é¿çsâ¬î\ÉtÉ@ÉCÉãÇ…ìnǵNjÇ∑ÅBDZÇÍÇ…ÇÊÇËÅAswing.properties ÇÃÉfÉtÉHÉãÉgílÇ™ÉIÅ[ÉoÅ[ÉâÉCÉhÇ≥ÇÍÇ‹Ç∑ÅB

  • ÉoÉìÉhÉãÇ≥ÇÍǃǢÇÈÅu.appÅvÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÇÕÅAInfo.plist ÉtÉ@ÉCÉãì‡Ç≈ÅADZÇÃÉvÉçÉpÉeÉBÇê›íËÇ≈Ç´Ç‹Ç∑ÅB

Ç®égÇ¢Çà Mac OS X ÉVÉXÉeÉÄè„Ç≈ÅAÉfÉtÉHÉãÉgÇà PLAF ÇçPãvìIÇ…ÉIÅ[ÉoÅ[ÉâÉCÉhÇ∑ÇÈÇ…ÇÕÅAÉRÉ}ÉìÉhÉâÉCÉìÇ©ÇÁ swing.properties ÇèCê≥Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

  1. cd /Library/Java/Home/lib
  2. root ÉÜÅ[ÉUÇΔǵǃÅAÉeÉLÉXÉgÉGÉfÉBÉ^Çégǡǃ swing.properties ÇäJÇ´Ç‹Ç∑Åiroot ÇΔǵǃÉçÉOÉCÉìÇ∑ÇÈÇ© sudo ÇégǢNjÇ∑)ÅB
  3. å≥ÇÃÉGÉìÉgÉäÇÉRÉÅÉìÉgÉAÉEÉgÇ∑ÇÈÇΩÇflÇ…ÅAä˘ë∂Çà swing.defaultlaf ÇÃçsÇÃêÊì™Ç… # ÇïtÇØÇ‹Ç∑ÅB
  4. swing.defaultlaf=<äÆëSÇ»ÉNÉâÉXñº> ÇΔǢǧêVǵǢçsÇí«â¡ÇµÇ‹Ç∑ÅB
  5. ÉtÉ@ÉCÉãÇï€ë∂ǵǃï¬Ç∂Ç‹Ç∑ÅB

ÇÊÇËëΩÇ≠ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™é¿çsÇ≥ÇÍǃǢÇÈâ¬î\ê´Ç™Ç†ÇÈÇΩÇflÅAäJî≠é“Ç™ÉÜÅ[ÉUÉ}ÉVÉìè„Ç≈DZÇÃÉXÉeÉbÉvÇé¿çsÇ∑ÇÈDZÇΔÇÕêÑèßÇ≥ÇÍÇ‹ÇπÇÒÅBâ^ópèÛë‘Ç≈ÇÕÅAÉÜÅ[ÉUÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…âeãøÇµÇ»Ç¢ÅAç≈èâÇ…ãìÇ∞ÇΩï ÇÃï˚ñ@Ç™ìKǵǃǢNjÇ∑ÅB

ÉfÉtÉHÉãÉgÇà PLAF ÇΔǵǃ Aqua ÇégópÇ∑ÇÈÇÊǧDž AWT Çèâä˙âªÇµÇƒÇ©ÇÁãNìÆÇ∑ÇÈÅAJava Web Start ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕó·äOÇ≈Ç∑ÅBJava Web Start ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈àŸÇ»ÇÈ PLAF ÇégópǵÇΩÇ¢èÍçáÅAUIManager.setLookAndFeel ÇåƒÇ—èoǵǃê›íËÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

PLAF ÇÉvÉçÉOÉâÉÄè„Ç≈ê›íËÇ∑ÇÈÇΔÅAç≈èâÇ…ãìÇ∞ÇΩï˚ñ@ÇÃÇ∑Ç◊ǃǙÉIÅ[ÉoÅ[ÉâÉCÉhÇ≥ÇÍÇÈDZÇΔÇ…íçà”ǵǃÇ≠ÇæÇ≥Ç¢ÅBAqua Ç‹ÇΩÇÕ Metal ÇÃégópÇÉvÉçÉOÉâÉÄÇ≈ê›íËǵǃǢÇÈèÍçáÅAwing.propertiesÅA-DÅAInfo.plist ǻǫÇÃê›íËÇÕñ≥éãÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃÇΩÇflÅAÉRÅ[ÉhÇÃïœçXÇ≈ÇÕÇ»Ç≠ÅAÉvÉçÉpÉeÉBÇÃïœçXÇ…ÇÊÇÈ PLAF ÇÃêÿÇËë÷ǶǙâ¬î\Ç»ÇÊǧDž PLAF ÇÃÉnÅ[ÉhÉRÅ[ÉhÇÕǵǻǢÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅB

Swing ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉãÉbÉNÉAÉìÉhÉtÉBÅ[ÉãÇÃïœçXï˚ñ@ÇÃè⁄ç◊DžǬǢǃÇÕÅAÅuThe Java TutorialÅv ÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB


[2004 îN 2 åé 10 ì˙]